package com.zhihuishu.micro.course.service;

import java.util.List;
import java.util.Map;

import com.zhihuishu.micro.course.model.MeetCourse;

/**
 * 见面课服务接口
 * @author	yulijin
 * @date	2016年8月12日 上午16:48:03
 */
public interface MeetCourseService {
	
	
	/**
	 * 查询见面课对象列表根据见面课id
	 * @author Rain
	 * @time 2016年9月12日-下午4:41:54
	 * @param meetCourseId
	 * @return
	 */
	List<MeetCourse> getMeetCourseList(Long courseId);
	
	/**
	 * 查询见面课对象
	 * @author Rain
	 * @time 2016年9月12日-下午5:23:01
	 * @param meetCourseId
	 * @return
	 */
	MeetCourse getMeetCourse(Long meetCourseId);
	
	/**
	 * 根据课程id查询见面课数量
	 * @author yulijin
	 * @date 2016年8月12日 下午5:08:32
	 * @param courseId
	 * @return
	 */
	int findMeetCourseCount(Long courseId);
	
	/**
	 * 新增见面课
	 * @author Rain
	 * @time 2016年9月12日-下午4:33:09
	 * @param meetCourse
	 */
	MeetCourse save(MeetCourse meetCourse);

	/**
	 * 删除见面课（逻辑删除）
	 * @author Rain
	 * @time 2016年9月12日-下午4:33:31
	 * @param meetCourseId
	 */
	void remove(Long meetCourseId);

	/**
	 * 修改见面课
	 * @author Rain
	 * @time 2016年9月12日-下午4:33:40
	 * @param meetCourse
	 */
	void update(MeetCourse meetCourse);
	
	/**
	 * 根据课程ID集合获取见面课最近更新时间
	 * @author ztl
	 * @param courseIds
	 * @return
	 */
	List<Map<String, Object>> getMeetCourseUpdateTimeByCourseIds(List<Long> courseIds);
	
	/**
	 * 新版、老版建课的见面课：通过courseId查询见面课
	 * @author ztl
	 * @param courseId
	 * @return
	 */
	List<MeetCourse> getMeetCourseByCourseId(Long courseId);
	/**
	 * 添加见面课
	 * @author yulijin
	 * @date 2016年12月7日 下午6:11:47 
	 * @param meetCourse
	 * @return
	 */
	MeetCourse insert(MeetCourse meetCourse);
	/**
	 * 删除见面课 （和海外建课区分）
	 * @author yulijin
	 * @date 2016年12月12日 下午3:38:26 
	 * @param meetCourseId
	 */
	void delete(Long meetCourseId);
	/**
	 * 清除单条见面课redis
	 * @author yulijin
	 * @date 2017年2月24日 下午5:36:06 
	 * @param meetCourseId
	 */
	void removeCache(long meetCourseId);
}
